Mirroring is a well-known technique for improving reliability of disk-based storage subsystems. Peer-to-Peer Remote Copy (PPRC), also known as Remote Copy or Remote Mirroring, is a form of mirroring in which one disk is maintained at a distance from the other, and which can be made accessible in the case of a failure of the first. This is used to provide continuing service in case of a disaster, or another failure that has a very large scope.
A challenge in providing PPRC is that of consistency. Applications often spread data across multiple disks. These disks may all be serviced by a single storage controller, but in a large configuration they may be distributed across multiple storage controllers. Related and interdependent applications running on multiple servers will also have their collective data spread across multiple disks. In order to make the entire set of disks at the remote site (usually called the “secondary”) usable, a concept of consistency must be maintained. In short, the data at the secondary must correspond to data that might have been detected at the primary if a hypothetical power failure had halted I/O operations across all disks at a specific instant in the past.
Maintaining consistency across multiple storage controllers using today's conventional methods requires three components. First, a management application running on a highly reliable server that coordinates the consistency guarantee protocol is needed. Second, storage controllers each of which implements the consistency guarantee protocol are needed. Third, a highly reliable network connecting the server running the application with the multiple storage controllers is needed.
For organizations that do not have such hardware and networks, there remains a need to provide a fault-tolerant data consistency guarantee method that can run on lower-reliability servers connected by potentially failure-prone networks. In such networks, for example, one system may continue processing data mistakenly when a second system has already failed—this cannot be tolerated when the second system is intended to mirror the data on the first system. For this and other reasons, therefore, there is a need for the present invention.